/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.webhomesites.locacao.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Webhome
 */

@Entity
@Table(name="LOCLOCACAO")
public class LocacaoModel implements Serializable {
    
    @Id
    @SequenceGenerator(name="CODLOCACAO", sequenceName="CODLOCACAO", allocationSize=1)
    @GeneratedValue(strategy= GenerationType.SEQUENCE, generator="CODLOCACAO")   
    @Column(name="CODLOCACAO", nullable=false)
    private int codigoLocacao;
    
    private int codigo;
    
    private int codigoCliente;
    private String nomeCliente;
    
    @Column(name="DATALOCACAO")  
    @Temporal(TemporalType.DATE)
    private Date dataLocacao;
    
    
    @Temporal(TemporalType.DATE)
    private Date dataPrevistaDevolucao;
    
    
    @Temporal(TemporalType.DATE)
    private Date dataDevolucao;
    
    @Column(name="PRECOLOCACAO")
    private String tabelaPrecoLocacao;
    
    @Column(name="QUANTIDADEDIASLOCACAO")
    private int diasLocacao;
    
    @Column(name="STATUSLOCACAO")
    private String statucLocacao;
    
    
    private double valorTotalLocacao;
    
    private List<String> tabelaPreco = new ArrayList<>();

    public String getNomeCliente() {
        return nomeCliente;
    }

    public void setNomeCliente(String nomeCliente) {
        this.nomeCliente = nomeCliente;
    }
    
    public int getCodigoCliente() {
        return codigoCliente;
    }

    public void setCodigoCliente(int codigoCliente) {
        this.codigoCliente = codigoCliente;
    }

    public int getCodigoLocacao() {
        return codigoLocacao;
    }

    public void setCodigoLocacao(int codigoLocacao) {
        this.codigoLocacao = codigoLocacao;
    }

    public String getTabelaPrecoLocacao() {
        return tabelaPrecoLocacao;
    }

    public void setTabelaPrecoLocacao(String tabelaPrecoLocacao) {
        this.tabelaPrecoLocacao = tabelaPrecoLocacao;
    }

    public Date getDataDevolucao() {
        return dataDevolucao;
    }

    public void setDataDevolucao(Date dataDevolucao) {
        this.dataDevolucao = dataDevolucao;
    }

    public Date getDataLocacao() {
        return dataLocacao;
    }

    public void setDataLocacao(Date dataLocacao) {
        this.dataLocacao = dataLocacao;
    }

    public Date getDataPrevistaDevolucao() {
        return dataPrevistaDevolucao;
    }

    public void setDataPrevistaDevolucao(Date dataPrevistaDevolucao) {
        this.dataPrevistaDevolucao = dataPrevistaDevolucao;
    }

    public int getDiasLocacao() {
        return diasLocacao;
    }

    public void setDiasLocacao(int diasLocacao) {
        this.diasLocacao = diasLocacao;
    }

    public String getStatucLocacao() {
        return statucLocacao;
    }

    public void setStatucLocacao(String statucLocacao) {
        this.statucLocacao = statucLocacao;
    }

    public double getValorTotalLocacao() {
        return valorTotalLocacao;
    }

    public void setValorTotalLocacao(double valorTotalLocacao) {
        this.valorTotalLocacao = valorTotalLocacao;
    }
 
    public List<String> getTabelaPreco() {
        setTabelaPreco();
        return tabelaPreco;
    }

    public void setTabelaPreco() {
        this.tabelaPreco.add("Diaria");
        this.tabelaPreco.add("Semanal");
        this.tabelaPreco.add("Quinzenal");
        this.tabelaPreco.add("Mensal");
    }
    
    @Override 
    public String toString() {
        return "Código Locação = " + getCodigoLocacao() + "\n" +
               "Código Cliente = " + getCodigoCliente() + "\n" +
               "Tabela Preço = " + getTabelaPrecoLocacao() + "\n" +
               "Dias locação = " + getDiasLocacao() + "\n" +
               "Data locação = " + getDataLocacao() + "\n" +
               "Data Prev. Dev. = " + getDataLocacao() + "\n" +
               "Data devolução = " + getDataDevolucao() + "\n" +
               "Status Locação = " + getStatucLocacao() + "\n";
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }
    
}
